/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package Compilador.Lexico.Automatos;

/**
 *
 * @author Rafa
 */
public class EstadoAutomatoEmpilha extends EstadoAutomato {
    private char simboloEmpilhado;
    private Automato automato;
    
    
    public EstadoAutomatoEmpilha(boolean isEstadoFinal, boolean isLoop,String nome,char simboloEmpilhado,Automato automato){
       super(isEstadoFinal, isLoop,nome);
       this.simboloEmpilhado = simboloEmpilhado;
       this.automato = automato;
    }
    
    @Override
    public EstadoAutomato getEstado(char simbolo) {
        if (transicoesAutomatos.containsKey(String.valueOf(simbolo))) {
            if(simbolo == this.simboloEmpilhado){
                this.automato.empilhaN();
            }
            return transicoesAutomatos.get(String.valueOf(simbolo));

        } else if (this.isLoop) {
            return this;
        }
        else return estadoDefault;
    }
    
    
    
}
